03. Run Query

  • 라이브러리를 활용해 Query날리는 법이 아닌 BigQuery Console에서 진행해보겠습니다!
  • Public Datasets를 활용해 6가지 쿼리문을 작성해보겠습니다

usa_names

  • 우선 BigQuery Console에서 좌측의 Public Datasets 아래에 bigquery-public-data :usa_names을 클릭한 후, use_1910_current를 클릭해주세요
  • 그 후, Details, Schema,Preview를 보겠습니다

Details

Schema

Preview

  • 이 테이블은 해당연도에 특정 주에서 특정 성별을 가진 특정 이름의 수를 저장한 테이블입니다
  • 총 5개의 Column(state, gender, year, name, number)

Q1) 가장 많은 state, year별 태어난 사람의 수( 쿼리를 직접 짜보세요! 일부러 빈칸을 넣었어요)

#standardSQL
SELECT state, year, sum(number) as number
FROM `bigquery-public-data.usa_names.usa_1910_current` 
group by state, year
order by number desc

Q2) ( 연도 상관없이 ) 가장 많이 태어난 이름은?

#standardSQL
SELECT name, sum(number) as number
FROM `bigquery-public-data.usa_names.usa_1910_current` 
group by name
order by number desc

Q3) 가장 많이 태어난 이름은 James 그렇다면 연도별 James의 Count를 구하는 Query

#standardSQL
SELECT name, year, sum(number) as number
FROM `bigquery-public-data.usa_names.usa_1910_current` 
where name = 'James'
group by name, year
order by number desc

nyc-tlc:green data

  • 우선 BigQuery Console에서 좌측의 Public Datasets 아래에 nyc-tlc:green을 클릭한 후, trips_2014를 클릭해주세요
  • 그 후, Details, Schema, Preview를 보겠습니다

Details

Schema

Preview

  • 이 테이블은 2014년 뉴욕의 green taxi에 대한 기록입니다
  • 총 21개의 Column

Q4) 2014년에 고객수(passenger_count)별 탑승 횟수를 구하는 쿼리를 짜보세요

#standardSQL
SELECT passenger_count, count(passenger_count) as number
FROM `nyc-tlc.green.trips_2014` 
group by passenger_count
order by number desc

Q5) 2015년 Table도 동일 dataset에 있는데, 2015년도 데이터도 포함해서 고객수별(passenger_count)탑승 횟수를 구하는 쿼리를 짜보세요

#standardSQL
SELECT passenger_count, count(passenger_count) as number
FROM `nyc-tlc.green.trips_*`
where _table_suffix between '2014' and '2015'
group by passenger_count
order by number desc

  • _table_suffix를 활용해 Table의 기간을 설정할 수 있습니다

Q6) 위에서 사용한 Table에서 연도별(pickup_datetime 기준) 운행 횟수(pickup_datetime)을 구하는 쿼리를 짜보세요

#standardSQL
SELECT EXTRACT(YEAR FROM pickup_datetime) as year, count(pickup_datetime) as total
FROM `nyc-tlc.green.trips_*`
where _table_suffix between '2014' and '2015'
group by year
order by total desc

  • EXTRACT 함수를 사용하면 timestamp에 있는 데이터를 추출할 수 있습니다!

이번 쿼리는 시간이 꽤 걸렸을거에요. 여기서 Explanation을 눌러볼까요?

  • 여기에선 BigQuery의 쿼리 단계가 나타나요. Average Time, Max Time이 표시되고, 어떤 부분에서 연산 시간이 오래 걸렸는지 알려줍니다!
  • 또한 Error가 날 경우엔, Error가 어디서 나타났는지 알려줍니다

몇가지만 간단히 추가했는데, 추후에 계속 쿼리에 대해 추가하겠습니다 ( Window 함수, Join, With문 등등..)